import {routes} from '@/router'

const filterRoutes = (routes: any) => {    
    // 即将要被处理的数据 items
    const items = routes[3]?.children || [];
    // 要输出的结果 menus
    const menus: Array<any> = [];
    items.forEach((item: any) => {
        // 假设menus现在是个空的
        if (menus.length === 0) {
            menus.push({
                title: item.title,
                to: item.path,
                children: [],
            });
            // 有子菜单的元素上一定会有一个parent
            if (item.parent)
                menus[menus.length - 1].children.push({
                    title: item.parent.title,
                    to: item.parent.to,
                });
        } else {
            // 如果menus里已经有数据了，那么就要判断现在进来的数据是当前已有数据的子集还是新的父亲
            const tmp = menus.find((v) => {
                return v.title === item.title;
            });
            if (tmp) {
                // 如果tmp有数据，那么现在就要在menus的子集上追加数据
                tmp.children.push({
                    title: item.parent.title,
                    to: item.parent.to,
                });
            } else {
                // 如果没有数据，那么就证明现在需要新push进一个数据
                menus.push({
                    title: item.title,
                    to: item.path,
                    children: [],
                });
                if (item.parent)
                    menus[menus.length - 1].children.push({
                        title: item.parent.title,
                        to: item.parent.to,
                    });
            }
        }
    });
    return menus;
};

export const menus = filterRoutes(routes);